package com.bjpowernode.dataservice.mapper;

import com.bjpowernode.commons.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.Date;

public interface UserMapper {
    /*
        在MyBatis中，${}和#{}的区别？
        #{}可以防止SQL注入，用户提交的数据，必须使用#{}方式取值
        ${}是字符串的拼接，不能防止SQL注入，用户提交的数据最好不要使用该方式获取，一般${}用户获取动态表名、字段名等
            select * from ${tableName} where id=#{id}
     */

    // 0: false,非0: true
    // no: false, yes: true
    @Select("select count(*) from u_user where phone=#{phone}")
    boolean checkPhone(String phone);

    @Insert("insert into u_user(phone, login_password, add_time) values(#{phone}, #{password}, #{date})")
    void register(String phone, String password, Date date);

    @Select("select * from u_user where phone=#{phone}")
    User getUserByPhone(String phone);

    @Update("update u_user set name=#{name}, id_card=#{idcard} where id=#{id}")
    void auth(Long id, String name, String idcard);

    @Update("update u_user set last_login_time=#{date} where id=#{id}")
    void updateLoginTime(Long id, Date date);

    @Update("update u_user set header_image=#{headerImage} where id=#{id}")
    void updateHeaderImage(Long id, String headerImage);
}
